#ifndef FUNCPROCSTRUCTING_H_
#define FUNCPROCSTRUCTING_H_

#include "funcion.h"
#include "parser.h"

/*****************************************************************
 *	funcProcStructIng.h
 * 
 *  Descripcion: Clase que representa una funcion que se encarga de
 *  proc los datos estructurales que se encuentran en la cadena expr, tomando
 *  el registro modelo pasado por param para insertar los mismos.
 *  Se debe pasar la pos a partir de la cual se desea insertar en el reg.
 *  Devuelve la pos siguiente a cargar en el reg modelo (porq tal vez
 *  habia estructuras optativas).
 *  Esta funcion sirve para el parseo de datos durante el ingreso.
 * **************************************************************/

class FuncProcStructIng : public Funcion {
	
	private:
	
	std::vector<TipoDato*> datos; //Vector que contiene los datos atomicos a cargar
	
	void liberar_datos();
	
	void procesar_estructura(TipoStruct* estructura);
	
	void procesar_coleccion(TipoColec* colec);
	
	public:
	
	~FuncProcStructIng();
	
	unsigned int operator() (const std::string &expr, TipoStruct* reg_modelo, unsigned int pos);
	
};

#endif
